#ifndef WORK_RESULT_H
#define WORK_RESULT_H

#include "common_includes.h"

template<typename T>
class WorkResult{
public:
	T score_ground_truth;
	double score_best_path; //TODO double is too hard
	double score_best_states;
	unsigned similarity_bp_gt;
	unsigned similarity_bs_gt;
	unsigned similarity_bp_bs;

	void clear(){
		score_ground_truth = 0;
		score_best_path = 0;
		score_best_states = 0;
		similarity_bp_gt = 0;
		similarity_bs_gt = 0;
		similarity_bp_bs = 0;
	}

	void operator+=(const WorkResult& rhs){
		score_ground_truth += rhs.score_ground_truth;
		score_best_path += rhs.score_best_path;
		score_best_states += rhs.score_best_states;
		similarity_bp_gt += rhs.similarity_bp_gt;
		similarity_bs_gt += rhs.similarity_bs_gt;
		similarity_bp_bs += rhs.similarity_bp_bs;
	}
};

#endif
